package com.sxj.corejava.code08_常用类.String;

import java.util.Arrays;

/**
 * @author 石小俊
 * @date 2024年04月03日 15:58
 */
public class Test04_与其他类型的转换 {
    public static void main(String[] args) {
        System.out.println("******************字符串转char数组******************");
        String s = "Hello World";
        // 将一个字符串转换成char数组,数组中的元素即为字符串中的每一个字符
        char[] cs = s.toCharArray();
        System.out.println(Arrays.toString(cs));
        System.out.println("******************char数组转字符串******************");
        String s2 = new String(cs);
        System.out.println(s2);

        System.out.println("******************字符串转byte数组******************");
        // 将一个字符串转换成char数组,数组中的元素即为字符串中的每一个字符
        // 但是由于是byte类型,因此,元素的值会被强制转换成对应的byte类型的数字
        // 即:数组中每一个元素的值即为字符串中每一个字符所对应的ASCII码的值
        byte[] bs = s.getBytes();
        System.out.println(Arrays.toString(bs));
        System.out.println("******************byte数组转字符串******************");
        s2 = new String(bs);
        System.out.println(s2);

        System.out.println("******************字符串转int******************");
        // 如果字符串中只包含数字,则直接转换
        String s3 = "123";
        // 如果字符串中包含了小数,则直接报错
        // NumberFormatException:数字格式异常
        // s3 = "123.45";
        // 如果字符串中包含了非数字,则直接报错
        // s3 = "123abc";
        int i = Integer.parseInt(s3);
        System.out.println(i);
        System.out.println("******************int转字符串******************");
        // s2 = i + "";
        s2 = String.valueOf(i);
        System.out.println(s2);

        System.out.println("******************字符串转double******************");
        // 如果字符串是一个整数,则直接转换
        // 此时转换后的结构会自动添加.o后缀
        // 例如:123->123.0
        String s4 = "123";
        // 如果字符串包含小数,则直接转换
        s4 = "123.45";
        // 如果包含了多个小数点,则格式不对,直接报错NumberFormatException
        // s4 = "123.45.67";
        // 如果字符串中包含了非数字,则直接报错
        // s4 = "123.45abc";
        double d = Double.parseDouble(s4);
        System.out.println(d);
        System.out.println("******************double转字符串******************");
        s2 = d + "";
        s2 = String.valueOf(d);
        System.out.println(s2);
    }
}
